Termination of the following Term Rewriting System could be disproven:
Generalized rewrite system (where rules with free variables on rhs are allowed):
The TRS R consists of the following rules:
uTake2(tt) → cons(N)
uLength(tt) → s(length(L))
and(tt, T) → T
isNatIList → isNatList
isNat → tt
isNat → isNat
isNat → isNatList
isNatIList → tt
isNatIList → and(isNat, isNatIList)
isNatList → tt
isNatList → and(isNat, isNatList)
isNatList → and(isNat, isNatIList)
zeros → cons(0)
take(0, IL) → uTake1(isNatIList)
uTake1(tt) → nil
take(s(M), cons(N)) → uTake2(and(isNat, and(isNat, isNatIList)))
length(cons(N)) → uLength(and(isNat, isNatList))
↳ GTRS
↳ CritRuleProof
Generalized rewrite system (where rules with free variables on rhs are allowed):
The TRS R consists of the following rules:
uTake2(tt) → cons(N)
uLength(tt) → s(length(L))
and(tt, T) → T
isNatIList → isNatList
isNat → tt
isNat → isNat
isNat → isNatList
isNatIList → tt
isNatIList → and(isNat, isNatIList)
isNatList → tt
isNatList → and(isNat, isNatList)
isNatList → and(isNat, isNatIList)
zeros → cons(0)
take(0, IL) → uTake1(isNatIList)
uTake1(tt) → nil
take(s(M), cons(N)) → uTake2(and(isNat, and(isNat, isNatIList)))
length(cons(N)) → uLength(and(isNat, isNatList))
The rule uTake2(tt) → cons(N) contains free variables in its right-hand side. Hence the TRS is not-terminating.